問題十六 Javascript 中如何刪除陣列的值?
在 Javascript 中要加入值非常的簡單,只要 array.push(數值) 這樣就可以了,如果要拿掉呢?也很簡單 array.pop() 就可以了,But !!! 人生中最可怕的就是這個 But ,pop 雖然很簡單直覺但是他只能移除「最後一個元素」,如果我們今天要移除中間的呢?
delete !!!
沒錯,我們有 delete 可以使用,雖然他是設計來刪除物件的,但是我們也可用來刪除陣列中的數值,不過有個很大的問題,他其實就只是「刪除資料」,而不是「刪除元素」。
舉例來說
array = [1,2,3];
delete array[0];
那陣列會變成什麼樣子呢?答案是
[undefined, 2, 3]
注意到問題了吧?那我們到底要怎麼做才能刪除中間的呢?
我們可以利用 splice 這個功能,那要怎麼用呢?很簡單
array.splice(1,1);
這個樣子就可以刪除第一筆囉!有人會問那兩個參數各是什麼呢?
第一個是你要刪除的元素位置,第二個是你要刪除幾個,這邊因為要刪除第一個所以是 1 ,如果寫 (1, 0) 就什麼都不會發生喔!!!
延伸閱讀、參考資料